﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;

namespace PickGold.Handler
{
	/// <summary>
	/// 无返回值托管
	/// </summary>
	[Serializable]
	[ComVisible(true)]
	public delegate void HNoReturnDelegate();
	/// <summary>
	/// 无返回值托管
	/// </summary>
	/// <typeparam name="T">参数一的类型</typeparam>
	/// <param name="p">参数一</param>
	[Serializable]
	[ComVisible(true)]
	public delegate void HNoReturnDelegate<T>(T p);
	/// <summary>
	/// 无返回值托管
	/// </summary>
	/// <typeparam name="T">参数一的类型</typeparam>
	/// <typeparam name="T1">参数二的类型</typeparam>
	/// <param name="p">参数一</param>
	/// <param name="p1">参数二</param>
	[Serializable]
	[ComVisible(true)]
	public delegate void HNoReturnDelegate<T, T1>(T p, T1 p1);
	/// <summary>
	/// 无返回值托管
	/// </summary>
	/// <typeparam name="T">参数一的类型</typeparam>
	/// <typeparam name="T1">参数二的类型</typeparam>
	/// <typeparam name="T2">参数三的类型</typeparam>
	/// <param name="p">参数一</param>
	/// <param name="p1">参数二</param>
	/// <param name="p2">参数三</param>
	[Serializable]
	[ComVisible(true)]
	public delegate void HNoReturnDelegate<T, T1, T2>(T p, T1 p1, T2 p2);
	/// <summary>
	/// 无返回值托管
	/// </summary>
	/// <typeparam name="T">参数一的类型</typeparam>
	/// <typeparam name="T1">参数二的类型</typeparam>
	/// <typeparam name="T2">参数三的类型</typeparam>
	/// <typeparam name="T3">参数四的类型</typeparam>
	/// <param name="p">参数一</param>
	/// <param name="p1">参数二</param>
	/// <param name="p2">参数三</param>
	/// <param name="p3">参数四</param>
	[Serializable]
	[ComVisible(true)]
	public delegate void HNoReturnDelegate<T, T1, T2, T3>(T p, T1 p1, T2 p2, T3 p3);
	/// <summary>
	/// 无返回值托管
	/// </summary>
	/// <typeparam name="T">参数一的类型</typeparam>
	/// <typeparam name="T1">参数二的类型</typeparam>
	/// <typeparam name="T2">参数三的类型</typeparam>
	/// <typeparam name="T3">参数四的类型</typeparam>
	/// <typeparam name="T4">参数五的类型</typeparam>
	/// <param name="p">参数一</param>
	/// <param name="p1">参数二</param>
	/// <param name="p2">参数三</param>
	/// <param name="p3">参数四</param>
	/// <param name="p4">参数五</param>
	[Serializable]
	[ComVisible(true)]
	public delegate void HNoReturnDelegate<T, T1, T2, T3, T4>(T p, T1 p1, T2 p2, T3 p3, T4 p4);
	/// <summary>
	/// 无返回值托管
	/// </summary>
	/// <typeparam name="T">参数一的类型</typeparam>
	/// <typeparam name="T1">参数二的类型</typeparam>
	/// <typeparam name="T2">参数三的类型</typeparam>
	/// <typeparam name="T3">参数四的类型</typeparam>
	/// <typeparam name="T4">参数五的类型</typeparam>
	/// <typeparam name="T5">参数六的类型</typeparam>
	/// <param name="p">参数一</param>
	/// <param name="p1">参数二</param>
	/// <param name="p2">参数三</param>
	/// <param name="p3">参数四</param>
	/// <param name="p4">参数五</param>
	/// <param name="p5">参数六</param>
	[Serializable]
	[ComVisible(true)]
	public delegate void HNoReturnDelegate<T, T1, T2, T3, T4, T5>(T p, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5);
	/// <summary>
	/// 无返回值托管
	/// </summary>
	/// <typeparam name="T">参数一的类型</typeparam>
	/// <typeparam name="T1">参数二的类型</typeparam>
	/// <typeparam name="T2">参数三的类型</typeparam>
	/// <typeparam name="T3">参数四的类型</typeparam>
	/// <typeparam name="T4">参数五的类型</typeparam>
	/// <typeparam name="T5">参数六的类型</typeparam>
	/// <typeparam name="T6">参数七的类型</typeparam>
	/// <param name="p">参数一</param>
	/// <param name="p1">参数二</param>
	/// <param name="p2">参数三</param>
	/// <param name="p3">参数四</param>
	/// <param name="p4">参数五</param>
	/// <param name="p5">参数六</param>
	/// <param name="p6">参数七</param>
	[Serializable]
	[ComVisible(true)]
	public delegate void HNoReturnDelegate<T, T1, T2, T3, T4, T5, T6>(T p, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6);
	/// <summary>
	/// 无返回值托管
	/// </summary>
	/// <typeparam name="T">参数一的类型</typeparam>
	/// <typeparam name="T1">参数二的类型</typeparam>
	/// <typeparam name="T2">参数三的类型</typeparam>
	/// <typeparam name="T3">参数四的类型</typeparam>
	/// <typeparam name="T4">参数五的类型</typeparam>
	/// <typeparam name="T5">参数六的类型</typeparam>
	/// <typeparam name="T6">参数七的类型</typeparam>
	/// <typeparam name="T7">参数八的类型</typeparam>
	/// <param name="p">参数一</param>
	/// <param name="p1">参数二</param>
	/// <param name="p2">参数三</param>
	/// <param name="p3">参数四</param>
	/// <param name="p4">参数五</param>
	/// <param name="p5">参数六</param>
	/// <param name="p6">参数七</param>
	/// <param name="p7">参数八</param>
	[Serializable]
	[ComVisible(true)]
	public delegate void HNoReturnDelegate<T, T1, T2, T3, T4, T5, T6, T7>(T p, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7);
	/// <summary>
	/// 无返回值托管
	/// </summary>
	/// <typeparam name="T">参数一的类型</typeparam>
	/// <typeparam name="T1">参数二的类型</typeparam>
	/// <typeparam name="T2">参数三的类型</typeparam>
	/// <typeparam name="T3">参数四的类型</typeparam>
	/// <typeparam name="T4">参数五的类型</typeparam>
	/// <typeparam name="T5">参数六的类型</typeparam>
	/// <typeparam name="T6">参数七的类型</typeparam>
	/// <typeparam name="T7">参数八的类型</typeparam>
	/// <typeparam name="T8">参数九的类型</typeparam>
	/// <param name="p">参数一</param>
	/// <param name="p1">参数二</param>
	/// <param name="p2">参数三</param>
	/// <param name="p3">参数四</param>
	/// <param name="p4">参数五</param>
	/// <param name="p5">参数六</param>
	/// <param name="p6">参数七</param>
	/// <param name="p7">参数八</param>
	/// <param name="p8">参数九</param>
	[Serializable]
	[ComVisible(true)]
	public delegate void HNoReturnDelegate<T, T1, T2, T3, T4, T5, T6, T7, T8>(T p, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8);
	/// <summary>
	/// 无返回值托管
	/// </summary>
	/// <typeparam name="T">参数一的类型</typeparam>
	/// <typeparam name="T1">参数二的类型</typeparam>
	/// <typeparam name="T2">参数三的类型</typeparam>
	/// <typeparam name="T3">参数四的类型</typeparam>
	/// <typeparam name="T4">参数五的类型</typeparam>
	/// <typeparam name="T5">参数六的类型</typeparam>
	/// <typeparam name="T6">参数七的类型</typeparam>
	/// <typeparam name="T7">参数八的类型</typeparam>
	/// <typeparam name="T8">参数九的类型</typeparam>
	/// <typeparam name="T9">参数十的类型</typeparam>
	/// <param name="p">参数一</param>
	/// <param name="p1">参数二</param>
	/// <param name="p2">参数三</param>
	/// <param name="p3">参数四</param>
	/// <param name="p4">参数五</param>
	/// <param name="p5">参数六</param>
	/// <param name="p6">参数七</param>
	/// <param name="p7">参数八</param>
	/// <param name="p8">参数九</param>
	/// <param name="p9">参数十</param>
	[Serializable]
	[ComVisible(true)]
	public delegate void HNoReturnDelegate<T, T1, T2, T3, T4, T5, T6, T7, T8, T9>(T p, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9);
	/// <summary>
	/// 无返回值托管
	/// </summary>
	[Serializable]
	[ComVisible(true)]
	public delegate void HNoReturnDelegate<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, Ta>(T p, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, Ta pA);
	/// <summary>
	/// 无返回值托管
	/// </summary>
	[Serializable]
	[ComVisible(true)]
	public delegate void HNoReturnDelegate<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, Ta, Tb>(T p, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, Ta pA, Tb pB);
	/// <summary>
	/// 无返回值托管
	/// </summary>
	[Serializable]
	[ComVisible(true)]
	public delegate void HNoReturnDelegate<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, Ta, Tb, Tc>(T p, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, Ta pA, Tb pB, Tc pC);
	/// <summary>
	/// 无返回值托管
	/// </summary>
	[Serializable]
	[ComVisible(true)]
	public delegate void HNoReturnDelegate<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, Ta, Tb, Tc, Td>(T p, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, Ta pA, Tb pB, Tc pC, Td pD);
	/// <summary>
	/// 无返回值托管
	/// </summary>
	[Serializable]
	[ComVisible(true)]
	public delegate void HNoReturnDelegate<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, Ta, Tb, Tc, Td, Te>(T p, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, Ta pA, Tb pB, Tc pC, Td pD, Te pE);
	/// <summary>
	/// 无返回值托管
	/// </summary>
	[Serializable]
	[ComVisible(true)]
	public delegate void HNoReturnDelegate<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, Ta, Tb, Tc, Td, Te, Tf>(T p, T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6, T7 p7, T8 p8, T9 p9, Ta pA, Tb pB, Tc pC, Td pD, Te pE, Tf pF);

	/// <summary>
	/// 无返回值托管
	/// </summary>
	/// <typeparam name="T">参数一的类型</typeparam>
	/// <param name="p">参数一</param>
	[Serializable]
	[ComVisible(true)]
	public delegate void HAction<T>(ref T p);
	/// <summary>
	/// 无返回值托管
	/// </summary>
	/// <typeparam name="T">参数一的类型</typeparam>
	/// <typeparam name="T1">参数二的类型</typeparam>
	/// <param name="p">参数一</param>
	/// <param name="p1">参数二</param>
	[Serializable]
	[ComVisible(true)]
	public delegate void HAction<T, T1>(ref T p, ref T1 p1);
	/// <summary>
	/// 无返回值托管
	/// </summary>
	/// <typeparam name="T">参数一的类型</typeparam>
	/// <typeparam name="T1">参数二的类型</typeparam>
	/// <typeparam name="T2">参数三的类型</typeparam>
	/// <param name="p">参数一</param>
	/// <param name="p1">参数二</param>
	/// <param name="p2">参数三</param>
	[Serializable]
	[ComVisible(true)]
	public delegate void HAction<T, T1, T2>(ref T p, ref T1 p1, ref T2 p2);
	/// <summary>
	/// 无返回值托管
	/// </summary>
	/// <typeparam name="T">参数一的类型</typeparam>
	/// <typeparam name="T1">参数二的类型</typeparam>
	/// <typeparam name="T2">参数三的类型</typeparam>
	/// <typeparam name="T3">参数四的类型</typeparam>
	/// <param name="p">参数一</param>
	/// <param name="p1">参数二</param>
	/// <param name="p2">参数三</param>
	/// <param name="p3">参数四</param>
	[Serializable]
	[ComVisible(true)]
	public delegate void HAction<T, T1, T2, T3>(ref T p, ref T1 p1, ref T2 p2, ref T3 p3);
	/// <summary>
	/// 无返回值托管
	/// </summary>
	/// <typeparam name="T">参数一的类型</typeparam>
	/// <typeparam name="T1">参数二的类型</typeparam>
	/// <typeparam name="T2">参数三的类型</typeparam>
	/// <typeparam name="T3">参数四的类型</typeparam>
	/// <typeparam name="T4">参数五的类型</typeparam>
	/// <param name="p">参数一</param>
	/// <param name="p1">参数二</param>
	/// <param name="p2">参数三</param>
	/// <param name="p3">参数四</param>
	/// <param name="p4">参数五</param>
	[Serializable]
	[ComVisible(true)]
	public delegate void HAction<T, T1, T2, T3, T4>(ref T p, ref T1 p1, ref T2 p2, ref T3 p3, ref T4 p4);
	/// <summary>
	/// 无返回值托管
	/// </summary>
	/// <typeparam name="T">参数一的类型</typeparam>
	/// <typeparam name="T1">参数二的类型</typeparam>
	/// <typeparam name="T2">参数三的类型</typeparam>
	/// <typeparam name="T3">参数四的类型</typeparam>
	/// <typeparam name="T4">参数五的类型</typeparam>
	/// <typeparam name="T5">参数六的类型</typeparam>
	/// <param name="p">参数一</param>
	/// <param name="p1">参数二</param>
	/// <param name="p2">参数三</param>
	/// <param name="p3">参数四</param>
	/// <param name="p4">参数五</param>
	/// <param name="p5">参数六</param>
	[Serializable]
	[ComVisible(true)]
	public delegate void HAction<T, T1, T2, T3, T4, T5>(ref T p, ref T1 p1, ref T2 p2, ref T3 p3, ref T4 p4, ref T5 p5);
	/// <summary>
	/// 无返回值托管
	/// </summary>
	/// <typeparam name="T">参数一的类型</typeparam>
	/// <typeparam name="T1">参数二的类型</typeparam>
	/// <typeparam name="T2">参数三的类型</typeparam>
	/// <typeparam name="T3">参数四的类型</typeparam>
	/// <typeparam name="T4">参数五的类型</typeparam>
	/// <typeparam name="T5">参数六的类型</typeparam>
	/// <typeparam name="T6">参数七的类型</typeparam>
	/// <param name="p">参数一</param>
	/// <param name="p1">参数二</param>
	/// <param name="p2">参数三</param>
	/// <param name="p3">参数四</param>
	/// <param name="p4">参数五</param>
	/// <param name="p5">参数六</param>
	/// <param name="p6">参数七</param>
	[Serializable]
	[ComVisible(true)]
	public delegate void HAction<T, T1, T2, T3, T4, T5, T6>(ref T p, ref T1 p1, ref T2 p2, ref T3 p3, ref T4 p4, ref T5 p5, ref T6 p6);
	/// <summary>
	/// 无返回值托管
	/// </summary>
	/// <typeparam name="T">参数一的类型</typeparam>
	/// <typeparam name="T1">参数二的类型</typeparam>
	/// <typeparam name="T2">参数三的类型</typeparam>
	/// <typeparam name="T3">参数四的类型</typeparam>
	/// <typeparam name="T4">参数五的类型</typeparam>
	/// <typeparam name="T5">参数六的类型</typeparam>
	/// <typeparam name="T6">参数七的类型</typeparam>
	/// <typeparam name="T7">参数八的类型</typeparam>
	/// <param name="p">参数一</param>
	/// <param name="p1">参数二</param>
	/// <param name="p2">参数三</param>
	/// <param name="p3">参数四</param>
	/// <param name="p4">参数五</param>
	/// <param name="p5">参数六</param>
	/// <param name="p6">参数七</param>
	/// <param name="p7">参数八</param>
	[Serializable]
	[ComVisible(true)]
	public delegate void HAction<T, T1, T2, T3, T4, T5, T6, T7>(ref T p, ref T1 p1, ref T2 p2, ref T3 p3, ref T4 p4, ref T5 p5, ref T6 p6, ref T7 p7);
	/// <summary>
	/// 无返回值托管
	/// </summary>
	/// <typeparam name="T">参数一的类型</typeparam>
	/// <typeparam name="T1">参数二的类型</typeparam>
	/// <typeparam name="T2">参数三的类型</typeparam>
	/// <typeparam name="T3">参数四的类型</typeparam>
	/// <typeparam name="T4">参数五的类型</typeparam>
	/// <typeparam name="T5">参数六的类型</typeparam>
	/// <typeparam name="T6">参数七的类型</typeparam>
	/// <typeparam name="T7">参数八的类型</typeparam>
	/// <typeparam name="T8">参数九的类型</typeparam>
	/// <param name="p">参数一</param>
	/// <param name="p1">参数二</param>
	/// <param name="p2">参数三</param>
	/// <param name="p3">参数四</param>
	/// <param name="p4">参数五</param>
	/// <param name="p5">参数六</param>
	/// <param name="p6">参数七</param>
	/// <param name="p7">参数八</param>
	/// <param name="p8">参数九</param>
	[Serializable]
	[ComVisible(true)]
	public delegate void HAction<T, T1, T2, T3, T4, T5, T6, T7, T8>(ref T p, ref T1 p1, ref T2 p2, T3 p3, ref T4 p4, ref T5 p5, ref T6 p6, ref T7 p7, ref T8 p8);
	/// <summary>
	/// 无返回值托管
	/// </summary>
	/// <typeparam name="T">参数一的类型</typeparam>
	/// <typeparam name="T1">参数二的类型</typeparam>
	/// <typeparam name="T2">参数三的类型</typeparam>
	/// <typeparam name="T3">参数四的类型</typeparam>
	/// <typeparam name="T4">参数五的类型</typeparam>
	/// <typeparam name="T5">参数六的类型</typeparam>
	/// <typeparam name="T6">参数七的类型</typeparam>
	/// <typeparam name="T7">参数八的类型</typeparam>
	/// <typeparam name="T8">参数九的类型</typeparam>
	/// <typeparam name="T9">参数十的类型</typeparam>
	/// <param name="p">参数一</param>
	/// <param name="p1">参数二</param>
	/// <param name="p2">参数三</param>
	/// <param name="p3">参数四</param>
	/// <param name="p4">参数五</param>
	/// <param name="p5">参数六</param>
	/// <param name="p6">参数七</param>
	/// <param name="p7">参数八</param>
	/// <param name="p8">参数九</param>
	/// <param name="p9">参数十</param>
	[Serializable]
	[ComVisible(true)]
	public delegate void HAction<T, T1, T2, T3, T4, T5, T6, T7, T8, T9>(ref T p, ref T1 p1, ref T2 p2, ref T3 p3, ref T4 p4, ref T5 p5, ref T6 p6, ref T7 p7, ref T8 p8, ref T9 p9);
	/// <summary>
	/// 无返回值托管
	/// </summary>
	[Serializable]
	[ComVisible(true)]
	public delegate void HAction<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, Ta>(ref T p, ref T1 p1, ref T2 p2, ref T3 p3, ref T4 p4, ref T5 p5, ref T6 p6, ref T7 p7, ref T8 p8, ref T9 p9, ref Ta pA);
	/// <summary>
	/// 无返回值托管
	/// </summary>
	[Serializable]
	[ComVisible(true)]
	public delegate void HAction<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, Ta, Tb>(ref T p, ref T1 p1, ref T2 p2, ref T3 p3, ref  T4 p4, ref T5 p5, ref T6 p6, ref T7 p7, ref T8 p8, ref T9 p9, ref Ta pA, ref Tb pB);
	/// <summary>
	/// 无返回值托管
	/// </summary>
	[Serializable]
	[ComVisible(true)]
	public delegate void HAction<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, Ta, Tb, Tc>(ref T p, ref  T1 p1, ref T2 p2, ref  T3 p3, ref  T4 p4, ref T5 p5, ref  T6 p6, ref T7 p7, ref T8 p8, ref  T9 p9, ref  Ta pA, ref Tb pB, ref Tc pC);
	/// <summary>
	/// 无返回值托管
	/// </summary>
	[Serializable]
	[ComVisible(true)]
	public delegate void HAction<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, Ta, Tb, Tc, Td>(ref T p, ref T1 p1, ref T2 p2, ref  T3 p3, ref T4 p4, ref T5 p5, ref T6 p6, ref T7 p7, ref T8 p8, ref T9 p9, ref Ta pA, ref Tb pB, ref Tc pC, ref Td pD);
	/// <summary>
	/// 无返回值托管
	/// </summary>
	[Serializable]
	[ComVisible(true)]
	public delegate void HAction<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, Ta, Tb, Tc, Td, Te>(ref T p, ref  T1 p1, ref  T2 p2, ref  T3 p3, ref  T4 p4, ref  T5 p5, ref  T6 p6, ref  T7 p7, ref  T8 p8, ref  T9 p9, ref  Ta pA, ref  Tb pB, ref  Tc pC, ref Td pD, ref Te pE);
	/// <summary>
	/// 无返回值托管
	/// </summary>
	[Serializable]
	[ComVisible(true)]
	public delegate void HAction<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, Ta, Tb, Tc, Td, Te, Tf>(ref T p, ref T1 p1, ref  T2 p2, ref  T3 p3, ref T4 p4, ref T5 p5, ref T6 p6, ref  T7 p7, ref  T8 p8, ref T9 p9, ref  Ta pA, ref  Tb pB, ref  Tc pC, ref  Td pD, ref  Te pE, ref  Tf pF);
}
